package com.ruoyi.tuanzhang.domain.vo;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 达人主页 /square_pc_api/homePage/author/profile
 */
@NoArgsConstructor
@Data
public class DarenHomeDto {
    // 返回code 0：正常
    @JsonProperty("code")
    private Integer code;
    @JsonProperty("data")
    private DataDTO data;
    @JsonProperty("log_id")
    private String logId;
    @JsonProperty("msg")
    private String msg;
    @JsonProperty("st")
    private Integer st;

    @NoArgsConstructor
    @Data
    public static class DataDTO {
        @JsonProperty("level")
        private Integer level;
        // 达人id
        @JsonProperty("account_douyin")
        private String accountDouyin;
        @JsonProperty("gender")
        private Integer gender;
        // 城市
        @JsonProperty("city")
        private String city;
        @JsonProperty("bind_lark_status")
        private Boolean bindLarkStatus;
        // 昵称
        @JsonProperty("nickname")
        private String nickname;
        @JsonProperty("fans_sum")
        private String fansSum;
        @JsonProperty("works_type")
        private List<String> worksType;
        @JsonProperty("agency")
        private String agency;
        // 产品类型及比例
        @JsonProperty("product_main_type_array")
        private List<ProductMainTypeArrayDTO> productMainTypeArray;
        @JsonProperty("score")
        private String score;
        @JsonProperty("reputation_level")
        private Integer reputationLevel;
        @JsonProperty("special_price")
        private Integer specialPrice;
        @JsonProperty("join_price")
        private Integer joinPrice;
        @JsonProperty("bargaining")
        private Integer bargaining;
        @JsonProperty("duration")
        private Integer duration;
        @JsonProperty("in_business")
        private Integer inBusiness;
        // 达人简介
        @JsonProperty("introduction")
        private String introduction;
        @JsonProperty("sale_type")
        private String saleType;
        @JsonProperty("rec_reason")
        private List<?> recReason;
        @JsonProperty("daren_plaza_rec_reason")
        private DarenPlazaRecReasonDTO darenPlazaRecReason;
        @JsonProperty("avatar")
        private String avatar;
        @JsonProperty("error_msg")
        private String errorMsg;
        @JsonProperty("share_url_douyin")
        private String shareUrlDouyin;
        @JsonProperty("recommend_reasons")
        private List<?> recommendReasons;
        @JsonProperty("credit_score")
        private Integer creditScore;
        @JsonProperty("intention_catgory")
        private List<?> intentionCatgory;
        @JsonProperty("cooperate_mode")
        private String cooperateMode;
        @JsonProperty("commission_ratio")
        private String commissionRatio;
        @JsonProperty("sell_requirement")
        private SellRequirementDTO sellRequirement;
        // 黑马
        @JsonProperty("dark_horses")
        private List<?> darkHorses;
        @JsonProperty("high_online_reply_rate")
        private Boolean highOnlineReplyRate;
        @JsonProperty("high_invitation_reply_rate")
        private Boolean highInvitationReplyRate;
        @JsonProperty("insitution_id")
        private String insitutionId;
        @JsonProperty("web_homepage_url")
        private String webHomepageUrl;
        // 高履约
        @JsonProperty("high_cooperation")
        private Boolean highCooperation;
        // 是否是明星
        @JsonProperty("is_star")
        private Boolean isStar;
        // 标签
        @JsonProperty("tags")
        private List<TagsDTO> tags;
        @JsonProperty("act_info")
        private Object actInfo;

        @NoArgsConstructor
        @Data
        public static class DarenPlazaRecReasonDTO {
            @JsonProperty("tag")
            private Integer tag;
            @JsonProperty("value")
            private String value;
        }

        @NoArgsConstructor
        @Data
        public static class SellRequirementDTO {
            @JsonProperty("charge_standard")
            private ChargeStandardDTO chargeStandard;
            @JsonProperty("requirement")
            private Integer requirement;

            @NoArgsConstructor
            @Data
            public static class ChargeStandardDTO {
                @JsonProperty("tag")
                private Integer tag;
                @JsonProperty("value")
                private String value;
            }
        }

        @NoArgsConstructor
        @Data
        public static class ProductMainTypeArrayDTO {
            // 类型
            @JsonProperty("name")
            private String name;
            // 比例数据
            @JsonProperty("val")
            private String val;
        }

        @NoArgsConstructor
        @Data
        public static class TagsDTO {
            @JsonProperty("type")
            private Integer type;
            @JsonProperty("content")
            private String content;
            @JsonProperty("tip")
            private String tip;
            @JsonProperty("extra")
            private String extra;
        }
    }
}
